]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
MessageTray: actually respect other components acking notifications
authorGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 12 May 2013 17:52:58 +0000 (19:52 +0200)
committerGiovanni Campagna <gcampagna@src.gnome.org>
Sun, 12 May 2013 18:19:06 +0000 (20:19 +0200)
If a notification is marked acknowledged from outside, filter it
out from the queue.

https://bugzilla.gnome.org/show_bug.cgi?id=698812

js/ui/messageTray.js

index c1c3a83ece7f9142f67a4db269ddc7dc9d06ad79..5cdaf2dc4f123332e9549602efa8dbf08c7ac708 100644 (file)
@@ -2196,7 +2196,10 @@ const MessageTray = new Lang.Class({
     // at the present time.
     _updateState: function() {
         // Notifications
-        let notificationQueue = this._notificationQueue;
+        let notificationQueue = this._notificationQueue.filter(function(n) {
+            return !n.acknowledged;
+        });
+        this._notificationQueue = notificationQueue;
         let notificationUrgent = notificationQueue.length > 0 && notificationQueue[0].urgency == Urgency.CRITICAL;
         let notificationForFeedback = notificationQueue.length > 0 && notificationQueue[0].forFeedback;
         let notificationsLimited = this._busy || Main.layoutManager.bottomMonitor.inFullscreen;
@@ -2637,16 +2640,8 @@ const MessageTray = new Lang.Class({
 
         let hasRightClickMenu = this._summaryBoxPointerItem.rightClickMenu != null;
         if (this._clickedSummaryItemMouseButton == 1 || !hasRightClickMenu) {
-            let newQueue = [];
-            for (let i = 0; i < this._notificationQueue.length; i++) {
-                let notification = this._notificationQueue[i];
-                let sameSource = this._summaryBoxPointerItem.source == notification.source;
-                if (sameSource)
-                    notification.acknowledged = true;
-                else
-                    newQueue.push(notification);
-            }
-            this._notificationQueue = newQueue;
+            // Acknowledge all our notifications
+            this._summmaryBoxPointerItem.source.notifications.forEach(function(n) { n.acknowledged = true; });
 
             this._summaryBoxPointer.bin.child = this._summaryBoxPointerItem.notificationStackWidget;